package com.moyz.adi;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
//这是一个组合注解，包含了以下三个注解的功能：
//@Configuration：标识该类为一个配置类，可以包含@Bean方法来定义Spring容器中的bean。
//@EnableAutoConfiguration：启用自动配置机制，根据类路径中的依赖自动配置Spring应用。例如，如果你的项目中添加了Spring Data JPA依赖，Spring Boot会自动配置数据源和实体管理器等。
//@ComponentScan：自动扫描并注册组件（如@Component、@Service、@Repository、@Controller等）到Spring容器中，默认情况下它会扫描与主应用程序类相同的包及其子包。
@SpringBootApplication
//启用Spring的异步方法执行功能。通过这个注解，你可以将方法标记为@Async，这样当调用这些方法时，它们会在独立的线程中执行，而不是阻塞当前线程。
@EnableAsync
//启用Spring的定时任务调度功能。通过这个注解，你可以在你的方法上使用@Scheduled注解来定义定时任务，如每分钟、每天特定时间执行某个操作。
@EnableScheduling
//启用Spring的缓存管理功能。通过这个注解，你可以在方法或类级别使用@Cacheable、@CachePut、@CacheEvict等注解来控制缓存的行为，以提高应用程序性能，减少重复计算或数据库查询。
@EnableCaching
public class BootstrapApplication {

    public static void main(String[] args) {

        try {
            SpringApplication.run(BootstrapApplication.class, args);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}
